home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / binutils.7 / binutils / binutils-2.7 / bfd / config.bfd < prev    next >
Encoding:
Text File  |  1996-07-04  |  12.8 KB  |  497 lines

  1. # config.bfd
  2. # Convert a canonical host type into a BFD host type.
  3. # Set shell variable targ to canonical target name, and run
  4. # using ``. config.bfd''.
  5. # Sets the following shell variables:
  6. #  targ_defvec        Default vector for this target
  7. #  targ_selvecs        Vectors to build for this target
  8. #  targ_archs        Architectures for this target
  9. #  targ_cflags        $(CFLAGS) for this target (FIXME: pretty bogus)
  10. #  targ_undercore    Whether underscores are used: yes or no
  11.  
  12. # The binutils c++filt program wants to know whether underscores are
  13. # stripped or not.  That is why we set targ_underscore.  c++filt uses
  14. # this information to choose a default.  This information is
  15. # duplicated in the symbol_leading_char field of the BFD target
  16. # vector, but c++filt does not deal with object files and is not
  17. # linked against libbfd.a.  It is not terribly important that c++filt
  18. # get this right; it is just convenient.
  19.  
  20. targ_defvec=
  21. targ_selvecs=
  22. targ_cflags=
  23. targ_underscore=no
  24.  
  25. targ_cpu=`echo $targ | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
  26. case "${targ_cpu}" in
  27. arm*)    targ_archs=bfd_arm_arch ;;
  28. hppa*)    targ_archs=bfd_hppa_arch ;;
  29. i[345]86) targ_archs=bfd_i386_arch ;;
  30. m68*)    targ_archs=bfd_m68k_arch ;;
  31. m88*)    targ_archs=bfd_m88k_arch ;;
  32. mips*)    targ_archs=bfd_mips_arch ;;
  33. powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
  34. rs6000)    targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
  35. sparc*)    targ_archs=bfd_sparc_arch ;;
  36. z8k*)    targ_archs=bfd_z8k_arch ;;
  37. *)    targ_archs=bfd_${targ_cpu}_arch ;;
  38. esac
  39.  
  40. # WHEN ADDING ENTRIES TO THIS MATRIX:
  41. #  Make sure that the left side always has two dashes.  Otherwise you
  42. #  can get spurious matches.  Even for unambiguous cases, do this as a
  43. #  convention, else the table becomes a real mess to understand and maintain.
  44.  
  45. case "${targ}" in
  46.   alpha-*-netware*)
  47.     targ_defvec=ecoffalpha_little_vec
  48.     targ_selvecs=nlm32_alpha_vec
  49.     ;;
  50.   alpha-*-linuxecoff*)
  51.     targ_defvec=ecoffalpha_little_vec
  52.     targ_selvecs=bfd_elf64_alpha_vec
  53.     ;;
  54.   alpha-*-linux* | alpha-*-elf*)
  55.     targ_defvec=bfd_elf64_alpha_vec
  56.     targ_selvecs=ecoffalpha_little_vec
  57.     ;;
  58.   alpha-*-*vms*)
  59.     targ_defvec=evax_alpha_vec
  60.     ;;
  61.   alpha-*-*)
  62.     targ_defvec=ecoffalpha_little_vec
  63.     ;;
  64.  
  65.   arm-*-riscix*)
  66.     targ_defvec=riscix_vec
  67.     ;;
  68.   arm-*-pe*)
  69.     targ_defvec=armpe_little_vec
  70.     targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
  71.     targ_underscore=yes
  72.     ;;
  73.   arm-*-aout | armel-*-aout)    
  74.     targ_defvec=aout_arm_little_vec
  75.     targ_selvecs=aout_arm_big_vec
  76.     ;;
  77.   armeb-*-aout)
  78.     targ_defvec=aout_arm_big_vec
  79.     targ_selvecs=aout_arm_little_vec
  80.     ;;
  81.   arm-*-coff)
  82.     targ_defvec=armcoff_little_vec
  83.     targ_selvecs=armcoff_big_vec
  84.     targ_underscore=yes
  85.     ;;
  86.  
  87.   a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
  88.   a29k-*-vxworks* | a29k-*-sysv*)
  89.     targ_defvec=a29kcoff_big_vec
  90.     targ_selvecs=sunos_big_vec
  91.     targ_underscore=yes
  92.     ;;
  93.   a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
  94.     targ_defvec=sunos_big_vec
  95.     targ_underscore=yes
  96.     ;;
  97.  
  98.   h8300*-*-*)
  99.     targ_defvec=h8300coff_vec
  100.     targ_underscore=yes
  101.     ;;
  102.  
  103.   h8500-*-*)
  104.     targ_defvec=h8500coff_vec
  105.     targ_underscore=yes
  106.     ;;
  107.  
  108.   sh-*-*)
  109.     targ_defvec=shcoff_vec
  110.     targ_selvecs="shcoff_vec shlcoff_vec"
  111.     targ_underscore=yes
  112.     ;;
  113.  
  114.   hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4*)
  115.     targ_defvec=bfd_elf32_hppa_vec
  116.     ;;
  117.   hppa*-*-bsd*)
  118.     targ_defvec=som_vec
  119.     targ_selvecs=bfd_elf32_hppa_vec
  120.     ;;
  121.   hppa*-*-hpux* | hppa*-*-hiux*)
  122.     targ_defvec=som_vec
  123.     ;;
  124.   hppa*-*-osf*)
  125.     targ_defvec=som_vec
  126.     targ_selvecs=bfd_elf32_hppa_vec
  127.     ;;
  128.  
  129.   i[345]86-*-sysv4* | i[345]86-*-unixware | i[345]86-*-solaris2* | \
  130.   i[345]86-*-elf | i[345]86-*-sco*elf* | i[345]86-*-freebsdelf*)
  131.     targ_defvec=bfd_elf32_i386_vec
  132.     targ_selvecs=i386coff_vec
  133.     ;;
  134.   i[345]86-*-sysv* | i[345]86-*-isc* | i[345]86-*-sco* | i[345]86-*-coff | \
  135.   i[345]86-*-aix* | i[345]86-*-go32* | i[345]86*-*-rtems*)
  136.     targ_defvec=i386coff_vec
  137.     ;;
  138.   i[345]86-sequent-bsd*)
  139.     targ_defvec=i386dynix_vec
  140.     targ_underscore=yes
  141.     ;;
  142.   i[345]86-*-bsd*)
  143.     targ_defvec=i386bsd_vec
  144.     targ_underscore=yes
  145.     ;;
  146.   i[345]86-*-freebsd*)
  147.     targ_defvec=i386freebsd_vec
  148.     targ_selvecs=i386bsd_vec
  149.     targ_underscore=yes
  150.     ;;
  151.   i[345]86-*-netbsd*)
  152.     targ_defvec=i386netbsd_vec
  153.     targ_selvecs=i386bsd_vec
  154.     targ_underscore=yes
  155.     ;;
  156.   i[345]86-*-netware*)
  157.     targ_defvec=bfd_elf32_i386_vec
  158.     targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
  159.     ;;
  160.   i[345]86-*-linuxaout*)
  161.     targ_defvec=i386linux_vec
  162.     targ_selvecs=bfd_elf32_i386_vec
  163.     targ_underscore=yes
  164.     ;;
  165.   i[345]86-*-linux*)
  166.     targ_defvec=bfd_elf32_i386_vec
  167.     targ_selvecs=i386linux_vec
  168.     targ_underscore=yes
  169.     ;;
  170.   i[345]86-*-lynxos*)
  171.     targ_defvec=i386lynx_coff_vec
  172.     targ_selvecs=i386lynx_aout_vec
  173.     ;;
  174.   i[345]86-*-gnu*)
  175.     targ_defvec=bfd_elf32_i386_vec
  176.     targ_selvecs=i386mach3_vec
  177.     targ_cflags=-DSTAT_FOR_EXEC
  178.     targ_underscore=yes
  179.     ;;
  180.   i[345]86-*-mach* | i[345]86-*-osf1mk*)
  181.     targ_defvec=i386mach3_vec
  182.     targ_cflags=-DSTAT_FOR_EXEC
  183.     targ_underscore=yes
  184.     ;;
  185.   i[345]86-*-os9k)
  186.     targ_defvec=i386os9k_vec
  187.     ;;
  188.   i[345]86-*-msdos*)
  189.     targ_defvec=i386aout_vec
  190.     targ_selvecs=i386msdos_vec
  191.     ;;
  192.   i[345]86-*-moss*)
  193.     targ_defvec=bfd_elf32_i386_vec
  194.     targ_selvecs="i386msdos_vec i386aout_vec"
  195.     ;;
  196.   i[345]86-*-cygwin32 | i[345]86-*-winnt | i[345]86-*-pe)
  197.     targ_defvec=i386pe_vec
  198.     targ_selvecs="i386pe_vec i386pei_vec"
  199.     ;;
  200.   i[345]86-none-*)
  201.     targ_defvec=i386coff_vec
  202.     ;;
  203.   i[345]86-*-aout* | i[345]86*-*-vsta*)
  204.     targ_defvec=i386aout_vec
  205.     ;;
  206.  
  207.   i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
  208.     targ_defvec=i860coff_vec
  209.     ;;
  210.   i860-*-sysv4* | i860-*-elf*)
  211.     targ_defvec=bfd_elf32_i860_vec
  212.     ;;
  213.  
  214.   i960-*-vxworks4* | i960-*-vxworks5.0)
  215.     targ_defvec=b_out_vec_little_host
  216.     targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
  217.     targ_underscore=yes
  218.     ;;
  219.   i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
  220.     targ_defvec=icoff_little_vec
  221.     targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
  222.     targ_underscore=yes
  223.     ;;
  224.   i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
  225.     targ_defvec=b_out_vec_little_host
  226.     targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
  227.     targ_underscore=yes
  228.     ;;
  229.  
  230.   m68*-apollo-*)
  231.     targ_defvec=apollocoff_vec
  232.     ;;
  233.   m68*-bull-sysv*)
  234.     targ_defvec=m68kcoffun_vec
  235.     targ_underscore=yes
  236.     ;;
  237.   m68*-hp-bsd*)
  238.     targ_defvec=hp300bsd_vec
  239.     targ_underscore=yes
  240.     ;;
  241.   m68*-*-aout*)
  242.     targ_defvec=aout0_big_vec
  243.     # We include cisco_core_vec here, rather than making a separate cisco
  244.     # configuration, so that cisco-core.c gets routinely tested at
  245.     # least for compilation.
  246.     targ_selvecs="cisco_core_vec ieee_vec"
  247.     targ_underscore=yes
  248.     ;;
  249.   m68*-*-elf* | m68*-*-sysv4*)
  250.     targ_defvec=bfd_elf32_m68k_vec
  251.     targ_selvecs="m68kcoff_vec ieee_vec"
  252.     ;;
  253.   m68*-*-coff* | m68*-*-sysv* | m68*-*-rtems*)
  254.     targ_defvec=m68kcoff_vec
  255.     targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
  256.     ;;
  257.   m68*-*-hpux*)
  258.     targ_defvec=hp300hpux_vec
  259.     targ_underscore=yes
  260.     ;;
  261.   m68*-*-linuxaout*)
  262.     targ_defvec=m68klinux_vec
  263.     targ_selvecs=bfd_elf32_m68k_vec
  264.     targ_underscore=yes
  265.     ;;
  266.   m68*-*-linux*)
  267.     targ_defvec=bfd_elf32_m68k_vec
  268.     targ_selvecs=m68klinux_vec
  269.     ;;
  270.   m68*-*-lynxos*)
  271.     targ_defvec=m68klynx_coff_vec
  272.     targ_selvecs=m68klynx_aout_vec
  273.     ;;
  274.   m68*-hp*-netbsd*)
  275.     targ_defvec=m68k4knetbsd_vec
  276.     targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
  277.     targ_underscore=yes
  278.     ;;
  279.   m68*-*-netbsd*)
  280.     targ_defvec=m68knetbsd_vec
  281.     targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
  282.     targ_underscore=yes
  283.     ;;
  284.   m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
  285.   m68*-*-bsd* | m68*-*-vsta*)
  286.     targ_defvec=sunos_big_vec
  287.     targ_underscore=yes
  288.     ;;
  289.   m68*-ericsson-*)
  290.     targ_defvec=sunos_big_vec
  291.     targ_selvecs="m68kcoff_vec tekhex_vec"
  292.     targ_underscore=yes
  293.     ;;
  294.   m68*-cbm-*)
  295.     targ_defvec=bfd_elf32_m68k_vec
  296.     targ_selvecs=m68kcoff_vec
  297.     ;;
  298.   m68*-apple-aux*)
  299.     targ_defvec=m68kaux_coff_vec
  300.     ;;
  301.   m68*-*-psos*)
  302.     targ_defvec=bfd_elf32_m68k_vec
  303.     targ_selvecs=ieee_vec
  304.     targ_underscore=yes
  305.     ;;
  306.  
  307.   m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
  308.     targ_defvec=bfd_elf32_m88k_vec
  309.     targ_selvecs=m88kbcs_vec
  310.     ;;
  311.   m88*-*-mach3*)
  312.     targ_defvec=m88kmach3_vec
  313.     targ_cflags=-DSTAT_FOR_EXEC
  314.     ;;
  315.   m88*-*-*)
  316.     targ_defvec=m88kbcs_vec
  317.     targ_underscore=yes
  318.     ;;
  319.  
  320.   mips*-big-*)
  321.     targ_defvec=ecoff_big_vec
  322.     targ_selvecs=ecoff_little_vec
  323.     ;;
  324.   mips-dec-netbsd*)
  325.     targ_defvec=bfd_elf32_littlemips_vec
  326.     targ_selvecs=bfd_elf32_bigmips_vec
  327.     ;;
  328.   mips*-dec-bsd*)
  329.     targ_defvec=aout_mips_little_vec
  330.     targ_underscore=yes
  331.     ;;
  332.   mips*-dec-mach3*)
  333.     targ_defvec=aout_mips_little_vec
  334.     targ_cflags=-DSTAT_FOR_EXEC
  335.     ;;
  336.   mips*-dec-* | mips*el-*-ecoff*)
  337.     targ_defvec=ecoff_little_vec
  338.     targ_selvecs=ecoff_big_vec
  339.     ;;
  340.   mips*-*-ecoff*)
  341.     targ_defvec=ecoff_big_vec
  342.     targ_selvecs=ecoff_little_vec
  343.     ;;
  344.   mips*-*-irix5*)
  345.     targ_defvec=bfd_elf32_bigmips_vec
  346.     targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
  347.     ;;
  348.   mips*-sgi-* | mips*-*-bsd*)
  349.     targ_defvec=ecoff_big_vec
  350.     targ_selvecs=ecoff_little_vec
  351.     ;;
  352.   mips*-*-mach3*)
  353.     targ_defvec=aout_mips_little_vec
  354.     targ_cflags=-DSTAT_FOR_EXEC
  355.     ;;
  356.   mips*-*-sysv4*)
  357.     targ_defvec=bfd_elf32_bigmips_vec
  358.     targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
  359.     ;;
  360.   mips*-*-sysv* | mips*-*-riscos*)
  361.     targ_defvec=ecoff_big_vec
  362.     targ_selvecs=ecoff_little_vec
  363.     ;;
  364.   mips*el-*-elf*)
  365.     targ_defvec=bfd_elf32_littlemips_vec
  366.     targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
  367.     ;;
  368.   mips*-*-elf*)
  369.     targ_defvec=bfd_elf32_bigmips_vec
  370.     targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
  371.     ;;
  372.  
  373.   ns32k-pc532-mach* | ns32k-pc532-ux*)
  374.     targ_defvec=pc532machaout_vec
  375.     targ_underscore=yes
  376.     ;;
  377.   ns32k-*-netbsd* | ns32k-*-lites*)
  378.     targ_defvec=pc532netbsd_vec
  379.     targ_underscore=yes
  380.     ;;
  381.  
  382.   powerpc-*-aix*)
  383.     targ_defvec=rs6000coff_vec
  384.     ;;
  385.   powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
  386.   powerpc-*-solaris2* | powerpc-*-linux* | powerpc-*-rtems*)
  387.     targ_defvec=bfd_elf32_powerpc_vec
  388.     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
  389.     ;;
  390.   powerpc-*-macos* | powerpc-*-mpw*)
  391.     targ_defvec=pmac_xcoff_vec
  392.     ;;
  393.   powerpc-*-netware*)
  394.     targ_defvec=bfd_elf32_powerpc_vec
  395.     targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
  396.     ;;
  397.   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
  398.   powerpcle-*-solaris2* | powerpcle-*-linux*)
  399.     targ_defvec=bfd_elf32_powerpcle_vec
  400.     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
  401.     ;;
  402.  
  403.   powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin32)
  404.     targ_defvec=bfd_powerpcle_pe_vec
  405.     targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
  406.     ;;
  407.  
  408.   rs6000-*-*)
  409.     targ_defvec=rs6000coff_vec
  410.     ;;
  411.  
  412.   sparc-*-lynxos*)
  413.     targ_defvec=sparclynx_coff_vec
  414.     targ_selvecs=sparclynx_aout_vec
  415.     ;;
  416.   sparc-*-netbsd*)
  417.     targ_defvec=sparcnetbsd_vec
  418.     targ_underscore=yes
  419.     ;;
  420.   sparc-*-elf* | sparc-*-sysv4* | sparc-*-solaris2*)
  421.     targ_defvec=bfd_elf32_sparc_vec
  422.     targ_selvecs=sunos_big_vec
  423.     ;;
  424.   sparc64-*-aout*)
  425.     targ_defvec=sunos_big_vec
  426.     targ_underscore=yes
  427.     ;;
  428.   sparc64-*-elf*)
  429.     targ_defvec=bfd_elf64_sparc_vec
  430.     targ_selvecs=bfd_elf32_sparc_vec
  431.     ;;    
  432.   sparc-*-netware*)
  433.     targ_defvec=bfd_elf32_sparc_vec
  434.     targ_selvecs="nlm32_sparc_vec sunos_big_vec"
  435.     ;;
  436.   sparc*-*-coff*)
  437.     targ_defvec=sparccoff_vec
  438.     ;;
  439.   sparc*-*-* | sparc*-*-rtems*)
  440.     targ_defvec=sunos_big_vec
  441.     targ_underscore=yes
  442.     ;;
  443.  
  444.   tahoe-*-*)
  445.     targ_defvec=host_aout_vec
  446.     targ_underscore=yes
  447.     ;;
  448.  
  449.   vax-*-vms*)
  450.     echo 1>&2 "*** BFD does not support target ${targ}."
  451.     echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
  452.     exit 1
  453.     ;;
  454.   vax-*-*)
  455.     targ_defvec=host_aout_vec
  456.     targ_underscore=yes
  457.     ;;
  458.  
  459.   we32k-*-*)
  460.     targ_defvec=we32kcoff_vec
  461.     ;;
  462.  
  463.   w65-*-*)
  464.     targ_defvec=w65_vec
  465.     ;;
  466.  
  467.   z8k*-*-*)
  468.     targ_defvec=z8kcoff_vec
  469.     targ_underscore=yes
  470.     ;;
  471.  
  472.   *-*-ieee*)
  473.     targ_defvec=ieee_vec
  474.     ;;
  475.  
  476.   *-adobe-*)
  477.     targ_defvec=a_aout_adobe_vec
  478.     targ_underscore=yes
  479.     ;;
  480.  
  481.   *-sony-*)
  482.     targ_defvec=newsos3_vec
  483.     targ_underscore=yes
  484.     ;;
  485.  
  486.   *-tandem-*)
  487.     targ_defvec=m68kcoff_vec
  488.     targ_selvecs=ieee_vec
  489.     ;;
  490.  
  491.   *)
  492.     echo 1>&2 "*** BFD does not support target ${targ}."
  493.     echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
  494.     exit 1
  495.     ;;
  496. esac
  497.